package org.ns.summer.classpath.scan;

import java.util.List;
/** 文件扫描执行
 * 
 * @author 张星宇
 *
 *
 */
public interface ScanFileExecute {
	/** 添加解析器
	 * 
	 * @param suffix 		文件后缀
	 * @param scanFileParse 文件解析
	 */
	void addSuffixScanFileParse(String suffix, SuffixScanFileParse scanFileParse);
	/** 获得后缀解析器
	 * 
	 * @param suffix
	 * @return
	 */
	SuffixScanFileParse getSuffixScanFileParse(String suffix);
	/** 扫描得到文件
	 * 
	 * @param rootPath
	 * @return
	 */
	List<ScanFile> execScan(String rootPath);

	/**
	 * 添加前缀限制
	 * @param prefixs 前缀集合
	 *
	 * @return
	 */
	ScanFileExecute addPrefixLimit(String[] prefixs);

	/**
	 * 添加前缀限制
	 * @param prefix
	 * @return
	 */
	default ScanFileExecute addPrefixLimit(String prefix) {
		return addPrefixLimit(new String[]{prefix});
	}
}
